/**
 * @description: 自定义指令， 元素大小变化时， 触发回调 
 * @param {*} 
 * @return {*}
 */
// 用于映射 dom 的回调函数 
const map = new WeakMap();

const ob = new ResizeObserver((entries) => {
  for(const entry of entries ){
    const hander = map.get(entry.target);
    hander && hander({
      width: entry.borderBoxSize[0].inlineSize,
      height: entry.borderBoxSize[0].blockSize 
    });
  }

})

export default {
  mounted(el: any, { value }: any) {
    ob.observe(el);
    map.set(el, value);
  },
  unmounted(el: any) {
    ob.unobserve(el);
  }
}